package com.chaoxing.service;

import com.chaoxing.entity.CommonResult;
import com.chaoxing.entity.User;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

public interface UserService {
    //注册
    int insert(User record);
    //插入之前先判断数据库中该用户账号是否已经注册
    String selectByPhone(String phone);

    //登录
    Integer loginSys(String phone, String pwd);
    //退出系统
    Integer exitSystem(HttpServletRequest request);
    //  查询用户
    User selectUser(@Param("phone") String phone, @Param("pwd") String pwd);


    /**
     * 管理员身份：主要就是对用户进行管理（对t_user表进行操作）
     * 管理员在对用户表进行操作之前，首先要判断一下该用户在user_course表中的信息是否已经删除，因为在数据库表设计时，
     * 设计的对应关系，user_course是t_user表的子表，要删除父表中的信息，首先应当判断其子表中对应的信息是否已经删除。
     * 如果没有删除，则不能其中的信息；应当先删除子表中的信息，在对父表进行操作。
     */
    //查看所有用户
    List<User> selectAllUserByAd(int pageNo, int pageSize);

    //删除用户
    List<Integer> selectUserId(int id);
    int deleteUserById(int id);
    int deleteUserByAd(int userid); //单个删除


    //修改用户密码
    int updateUserByAd(Integer id ,String pwd);
    String selectId(Integer id);

    //   查询所有的学生（获取所有的学生的数量，不管选课没选课
    int queryAllStNum();

    //    查询课程被多少学生选了（返回选这门课的学生的数量）
    int  queryPartStNum(int id);

    //返回选课未选比例
    Map<String,String> calculation(int id);


    //根据用户id查询用户数据
    User selectByPrimaryKey(Long id);

    /*查询全部教师*/
    List<User> selectTeacher();

    User queryUser(String userid);
}
